package top.hymsk.ecommerce.service;

import top.hymsk.ecommerce.pojo.response.GeneralResponse;

/**
 * @author 花于陌上开
 */
public interface UserService {
    /**
     * 查询用户名是否存在
     *
     * @param username 用户名
     * @return 验证状态
     */
    GeneralResponse userNameIsExist(String username);

    /**
     * 进行图灵测试验证
     *
     * @param parameter 手机号
     * @return (图片信息和)验证状态
     */
    GeneralResponse getVerificationTuring(String parameter);

    /**
     * 获取验证码
     *
     * @param parameter        手机号
     * @param verificationCode 图灵测试验证码
     * @return 验证状态
     */
    GeneralResponse sendVerificationCode(String parameter, String verificationCode);

    /**
     * 进行注册
     *
     * @param username         用户名
     * @param phoneNumber      手机号
     * @param verificationCode 验证码
     * @param password         密码
     * @return 注册状态
     */
    GeneralResponse userRegister(String username, String phoneNumber, String verificationCode, String password);

    /**
     * 进行重置密码
     *
     * @param phoneNumber      手机号
     * @param verificationCode 验证码
     * @param password         密码
     * @return 重置密码状态
     */
    GeneralResponse userResetPassword(String phoneNumber, String verificationCode, String password);

    /**
     * 登录
     *
     * @param parameter 用户名/手机号/邮箱
     * @param password  密码
     * @return 登录状态
     */
    GeneralResponse login(String parameter, String password);

    /**
     * 注册为商户
     *
     * @param userId    用户名
     * @param storeName 店铺名
     * @return 返回状态信息
     */
    GeneralResponse joinSeller(Integer userId, String storeName);

    /**
     * 获取店铺信息
     *
     * @param userId  用户id
     * @param storeId 店铺id
     * @return 返回状态信息，需要重新登录才能生效
     */
    GeneralResponse sellerInfo(Integer userId, Integer storeId);

    /**
     * 获取用户信息
     *
     * @param userId  用户id
     * @return 返回状态信息，需要重新登录才能生效
     */
    GeneralResponse buyerInfo(Integer userId);
}
